/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.colswedev.lab3.control;

import org.colswedev.lab3.dao.UsuarioDao;
import org.colswedev.lab3.entity.Usuario;

/**
 * Clase para control de permisos de acceso a los modulos
 * por parte de los usarios del sistema.
 * @author Oscar
 */
public class NavegarModuloControl {

    /** Variable control para acceder servicios de sesion. */
    private GestionarSesionControl sesion = GestionarSesionControl.getInstance();
    /** Variable control para acceder a datos del usuario. */
    private UsuarioDao daoUsuario = new UsuarioDao();

    /**
     * Constructor.
     */
    public NavegarModuloControl() {
    }

    /**
     * Valida si un usuario puede acceder a un modulo determinado.
     * @param usuario Usuario a validar.
     * @param modulo Modulo a validar.
     * @return
     *      0: Comprobacion exitosa\n
     *      1: El usuario no tiene permiso de acceder al modulo seleccionado\n
     *      2: El usuario no posee una sesion activa\n
     */
    public int comprobarPermisos(final Usuario usuario, final int modulo) {
        //obtenemos el usuario desde el sistema
        Usuario us = daoUsuario.getUsuario(usuario);
        //validamos que tenga una sesion activa
        if (!sesion.validarSesion(us)) {
            return 2;
        }
        //verificamos en los permisos del usuario
        boolean permiso = false;//variable para controlar resultado final
        for (int i = 0; i < us.getPermisosList().size(); i++) {
            if (us.getPermisosList().get(i).getCodigo() == modulo) {
                //El usuario tiene permiso de acceso al modulo
                permiso = true;
                break;
            }
        }

        //verifiacmos estado de variable para validar si tiene o no permiso
        if (!permiso) {
            return 1;
        }
        return 0;
    }
}
